﻿/*********************************************************************************
**                                                                              **
**  Copyright (C) 2024 LiLong                                                   **
**  This file is part of GnssLogs.                                              **
**                                                                              **
**  GnssLogs is free software: you can redistribute it and/or modify            **
**  it under the terms of the GNU Lesser General Public License as published by **
**  the Free Software Foundation, either version 3 of the License, or           **
**  (at your option) any later version.                                         **
**                                                                              **
**  GnssLogs is distributed in the hope that it will be useful,                 **
**  but WITHOUT ANY WARRANTY; without even the implied warranty of              **
**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               **
**  GNU Lesser General Public License for more details.                         **
**                                                                              **
**  You should have received a copy of the GNU Lesser General Public License    **
**  along with GnssLogs.  If not, see <https://www.gnu.org/licenses/>.          **
**********************************************************************************/
#pragma once

#include "LogHeader.h"

namespace GnssLogs
{
namespace GPSEPHEM
{
struct Data
{
    LogHeader::Data header;
    uint32_t prn;
    double tow;
    uint32_t health;
    uint32_t iode1;
    uint32_t iode2;
    uint32_t week;
    uint32_t zWeek;
    double toe;
    double semiMajorAxis;
    double meanMotionDifference;
    double meanAnomalyOfReferenceTime;
    double ecc;
    double argumentOfPerigee;
    double cuc;
    double cus;
    double crc;
    double crs;
    double cic;
    double cis;
    double inclinationAngleAtReferenceTime;
    double rateOfInclinationAngle;
    double longitudeOfAscendingNodeOfOrbitPlane;
    double rateOfRightAscension;
    uint32_t iodc;
    double toc;
    double tgd;
    double af0;
    double af1;
    double af2;
    bool as;
    double correctedMeanMotion;
    double ura;
    uint32_t crc32;
};
} // namespace GPSEPHEM
} // namespace GnssLogs

GNSSLOGS_DECLARE_FORMATTER(GnssLogs::GPSEPHEM::Data)